草庐IT

JS 做一个简单的 Parser

全部标签

javascript - 通过使用在每个子数组的第一个元素中找到的子字符串作为键来组合子数组

具有这种形式的二维数组:arr=[["12325-a",1,1,1],["43858-b",3,4,1],["84329-a",6,5,2],["18767-b",0,9,0],["65888-b",5,4,4],];在每个子数组中,第一个元素是一个字符串。我想将具有相同末端的子数组组合在一起。在这种情况下,它将是两个组:-a和-b。数值应根据索引计算为总和。所以结果看起来像:arr=[["-a",7,6,3],["-b",8,17,5],];我的解决方案(不起作用):letarr=[["12325-a",1,1,1],["43858-b",3,4,1],["84329-a",6,5,

javascript - 有没有办法将 map 的所有条目设置为一个值

我有一个数组,我想将其用作map的键并将每个值设置为true。除了在我的数组上使用forEach循环来设置每个条目之外,还有其他方法吗?这就是我现在的做法:constlist=[0,1,2,3];constmyMap=newMap();list.forEach(element=>myMap.set(element,true));有没有更好的办法? 最佳答案 一种更简洁、更实用的方法是将列表的map作为参数传递给map:constlist=[0,1,2,3];constmyMap=newMap(list.map(key=>[key,t

javascript - 将 react redux 与 next.js 结合使用

我尝试将Redux与next.jsstarter结合使用项目,我在项目上安装了next-redux-wrapper但我不确定这个项目的根文件在哪里。我尝试按照next-redux-wrapper上显示的教程进行操作但没有成功。没有任何变化。请帮助我如何将Redux添加到项目中。问候。 最佳答案 Next.js使用App组件来初始化页面。您可以覆盖它并控制页面初始化。虽然这个演示是针对next.js的,但它应该适用于nextjs-starter。安装next-redux-wrapper:npminstall--savenext-red

javascript - 如何使用 `ArrayBuffer` 从 `bytes` 生成 `js_of_ocaml`

我正在构建一个在Ocaml中实现并使用js_of_ocaml编译为JavaScript的JavaScript库.我的一个Ocaml函数返回一个带有二进制数据的string。我如何使用js_of_ocaml作为ArrayBuffer公开它? 最佳答案 当您编译为javascript时,在string中操作二进制数据非常容易出错!根本原因是js_of_ocaml的选择有问题:因为javascript字符串以UTF16编码,而OCaml字符串(隐式)以UTF8编码,js_of_ocaml尝试在两者之间导航。因此,当它遇到代码为>127的“

javascript - 如果选中另一个具有相同 ID 的复选框,如何禁用复选框

我有一个表格,其中一列中有一个复选框。当一个复选框被选中时,我将行插入一个数组。我试图根据下面的..真实世界更好地解释这一点该表可以包含具有重复ID的行(行的列(flat_id)不同)。我上面提到的重复id是user_map_id.当我选中(单击复选框)一行时,我希望其他行具有相同的user_map_id被禁用。所以当一行被选中时,我存储了user_map_ids在一个数组中。然后我这样做:ng-disabled="selectedUserMapIdArray.indexOf(flat.user_map_id)>=0即,如果user_map_id,我将禁用该行存在于所选user_map

javascript - Gulpfile.js 加载失败

VisualStudio任务运行程序无法加载gulp文件。我现在用的是VS2017v15.9.4,不过这个项目是几年前开发的。Failedtorun"...\Gulpfile.js"...cmd.exe/cgulp--tasks-simpleassert.js:350throwerr;^AssertionError[ERR_ASSERTION]:TaskfunctionmustbespecifiedatGulp.set[as_setTask](...\node_modules\undertaker\lib\set-task.js:10:3)atGulp.task(...\node_mo

javascript - 有没有一种更简单的方法可以在不捕获的情况下进行单行尝试?

当我做这样的事情时:letresolved=null;try{resolved=require.resolve(modulePath)}catch(e){}我想知道是否有更短的语法,例如:letresolved=null;tryresolved=require.resolve(modulePath)有没有办法在不打开catchblock的情况下原谅这一行?有这样的东西,但我正在寻找更自然的东西:functiont(fn,def){letresolved=def;try{resolved=fn()}catch(e){}returnresolved;} 最佳答案

javascript - 为什么 .mov、.mkv 和一些 .mp4 不能在 plyr.js 中播放

我如何使用plyr.js播放.mov,.mkv,.wmv,.mp4所有文件因为我喜欢plyr的外观code>我不想通过videojs更改plyr。如果有任何外部插件可以帮助播放上述文件,我很乐意使用它们。注意:我使用了plyr.polyfilled.js,尽管它不会播放。我没有任何要显示的.mov、.mkv、.wmv文件问题:是否可以使用plyr播放上述文件。下面的演示:'usestrict';document.addEventListener('DOMContentLoaded',function(){//ThisisthebareminimumJavaScript.Youcanop

javascript - 如何在 Metro Bundler 的 metro.config.js 中附加扩展名?

我正在尝试捆绑markdown文件而不产生太多开销(即不将它们手动添加到Xcode和AndroidStudio中的Assets包,不使用第3方依赖项)。我的想法是允许require()通过调整metro.config.js中的metrobundler设置来包含它们:/***MetroconfigurationforReactNative*https://github.com/facebook/react-native**@format*/module.exports={transformer:{getTransformOptions:async()=>({transform:{expe

javascript - 编写一个函数对对象数组进行排序(通过使用另一个对象来指定排序路径和顺序)

我将编写一个函数来对具有某种结构的任何JSON进行排序(只要知道它是一个对象数组,例如产品列表),方法是使用另一个对象作为其参数以确定根据哪个对象执行排序键。//ThejsonthatIgetmightlookslikesomethinglikethis.//Ijustwriteoneitemofthearray,butallofthemarethesame.//Buttheblueprintoftheitemsineachjsonaredifferent.constdataArray=[{id:100,name:'product_1',price:99.95,color:['#fff